import vueRoot from '@/main'
/**
 * 获取 blob
 * @param  {String} url 目标文件地址
 * @return {cb} 
 */
function getBlob(url, cb) {
    var xhr = new XMLHttpRequest();
    if (!url.startsWith("http")) {
        url = vueRoot.VUE_APP_BASE_API + url;
    }
    xhr.open('GET', url, true);
    xhr.responseType = 'blob';
    xhr.onload = function (e) {
        console.log(e)
        if (xhr.status === 200) {
            cb(xhr.response);
        }
    };
    //   xhr.onprogress=
    xhr.onerror = function (e) {
        console.log(e)
        vueRoot.$message({
            message: '下载失败',
            type: 'error'
        })
    }
    xhr.send();
}

/**
* 保存
* @param  {Blob} blob     
* @param  {String} filename 想要保存的文件名称
*/
function saveAs(blob, filename) {
    if (window.navigator.msSaveOrOpenBlob) {
        navigator.msSaveBlob(blob, filename);
    } else {
        var link = document.createElement('a');
        var body = document.querySelector('body');

        link.href = window.URL.createObjectURL(blob);
        link.download = filename;

        // fix Firefox
        link.style.display = 'none';
        body.appendChild(link);

        link.click();
        body.removeChild(link);

        window.URL.revokeObjectURL(link.href);
    };
}

/**
* 下载
* @param  {String} url 目标文件地址
* @param  {String} filename 想要保存的文件名称
*/
function download(url, filename) {
    getBlob(url, function (blob) {
        saveAs(blob, filename);
    });
};
//后台修改了保存方式，不需要h5下载重命名
function downloadDirectly(url) {
    if(url.startsWith("/cars/")){
        url=url.replace(/\/cars\//,"")
    }
    if (!url.startsWith("http")) {
        url = vueRoot.VUE_APP_BASE_API + url;
    }
    window.open(url, '_blank')
}
export default downloadDirectly;